home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 41
/
Aminet 41 (2001)(Schatztruhe)[!][Feb 2001].iso
/
Aminet
/
game
/
role
/
pmangband.lha
/
lib
/
text
/
version.txt
< prev
Wrap
Text File
|
2000-12-06
|
17KB
|
391 lines
=== Version Information ===
This file was last updated for Angband 2.7.9.
Make sure to read the newsgroup "rec.games.roguelike.angband" if possible.
Angband 2.7.9 is the result of a lot of work by a lot of people, and as such
has a rather complicated version history. Worse yet, this version history
spans more than ten years (!) time, and multiple platforms. But some history
is better than none, so here we go...
=== Brief Version History ===
First came "VMS Moria", by Robert Alan Koeneke (1985).
Then came "Umoria" (Unix Moria), by James E. Wilson (1989).
In 1990, Alex Cutler and Andy Astrand, with the help of other students
at the University of Warwick, created Angband 1.0, based on the existing
code for Umoria 5.2.1. They wanted to expand the game, keeping or even
strengthening the grounding in Tolkien lore, while adding more monsters
and items, including unique monsters and artifact items, plus activation,
pseudo-sensing, level feelings, and special dungeon rooms.
Over time, Sean Marsh, Geoff Hill, Charles Teague, and others, worked on
the source, releasing a copy known as "Angband 2.4.frog_knows" at some
point, which ran only on Unix systems, but which was ported by various
people to various other systems.
Then Charles Swiger (cs4w+@andrew.cmu.edu) attempted to clean up the mess,
resulting in several versions, starting sometime around November, 1993, with
Angband 2.5.1 (more or less) and leading up to Angband 2.6.2 in late 1994.
Several people ported (the primarily Unix/NeXT centered) Angband 2.6.1 to
other platforms, including Keith Randall, who made a Macintosh port that
added support for color usage. Some of the changes during this period were
based on suggestions from the "net", PC Angband 1.40, UMoria 5.5, and some
of the Angband "variations", such as FAngband.
Finally, I (Ben Harrison) took over in late 1994 when Charles Swiger left.
Initially my intention was simply to clean up what had become, after ten
years, a rather unholy mess, but the deeper I delved into the code, the
more it became apparent that drastic changes were needed, so, starting
with MacAngband 2.6.1, I began a more or less total rewrite, resulting,
eventually, in Angband 2.7.0, released around January first, 1995.
Angband 2.7.0 was a very clean (but very buggy) rewrite that, among other
things, allowed extremely simple porting to multiple platforms, starting
with Unix and Macintosh, and by the time most of the bugs were cleaned up,
in Angband 2.7.2, including X11, and various IBM machines. Angband 2.7.4
was released to the "ftp.cis.ksu.edu" site, and quickly gained acceptance,
perhaps helped by the OS2 and Windows and Amiga and Linux ports. Angband
2.7.5 and 2.7.6 added important capabilities such as macros and user pref
files, and continued to clean up the source. Angband 2.7.8 was designed
to supply another "stable" version that we can all give to our friends,
with new "help files" and "spoiler files" for the "online help", plus a
variety of minor tweaks and some new features. Angband 2.7.9 optimized
a few things, and tweaked a few other things, and cleaned up a few other
things, and introduced a few minor semantic changes.
It is very hard to pin down, along the way from 2.6.2 to 2.7.0, and thence
to 2.7.8, exactly what was added exactly when. Most of these steps involved
so many changes as to make "diff files" not very useful, since often the diff
files were as long as the code itself. Most of the changes, with the notable
exception of the creation of the new "main-xxx.c" files for the various new
platforms, and a few other exceptions generally noted in the source, were
written by myself, either spontaneously, or, more commonly, as the result of
a suggestion or comment by an Angband player. So if you have any problems
with anything that you do not recognize from older versions, you can blame
them on me. And if you like the new features and such, you can send me a
brief little "thank you" email (to benh@voicenet.com) or something...
The Official Angband Home Page ("http://www.voicenet.com/~benh/Angband/")
was created along with Angband 2.7.9 to serve as an up to date description
of any bugs found in various versions, and to list all of the people whose
email addresses I kept having to look up.
=== Some of the changes from Angband 2.6.1 to Angband 2.7.9 ===
The most important modification was a massive "code level cleanup" that made
all of my other modifications much simpler and safer. This cleanup was so
massive that in many places the code is no longer recognizable, for example,
via "diff -r", often because it was rewritten from scratch.
The second most important modification was the design of a generic "term.c"
package, which allows Angband to be ported to a new machine with as few as 50
lines of code. Angband 2.7.9 thus runs without modification on many machines,
including Macintosh, PowerMac, Unix/X11, Unix/Curses, Amiga, Windows, OS2-386,
DOS-386, and even DOS-286.
It would be difficult to list all of the changes between Angband 2.6.1 and
Angband 2.7.9, because many of them were made in passing during the massive
code level cleanup. Many of the changes are invisible to the user, but still
provide increased simplicity and efficiency, and decreased code size, or make
other more visable changes possible. For example, the new "project()" code
that handles all bolts, beams, and balls, the new "update_view()" code that
simplifies line of sight computation, or the new "generate()" code that builds
new levels in the dungeon. Many changes have been made to increase efficiency,
including the new "process_monsters()" and "update_monsters()" functions, and
the new "objdes()" and "lite_spot()" routines. The generic "Term" package
yielded efficient screen updates, and enabled the efficient use of "color".
But anyway, here are a few things that come to mind, in no particular order,
and with very little time or effort. Somehow I managed to put off updating
this file to the very end, and it will just have to do for now. The recent
changes (and bug fixes) can be found at the Official Angband Home Page.
color
macros
keymaps
user pref files
generic feature array, with template file
generic object array, with template file
generic artifact array, with template file
generic ego-item array, with template file
generic monster array, with template fils
generic vault array, with template file
binary image files for the template files
special stat effect tables
a special table of spells
a special table of options
inventory tagging
inventory restrictions
using objects off the floor
various new runtime options
the new "destroy" command
the new "examine" command
the new "note" command
the new "dump screen" command
the new "load screen" command
the new "un-inscribe" command
the new "change visuals" command
the new "change colors" command
the new "change macros" command
the new "save game" command
the new "fire" vs "throw" commands
rearranged equipment slots
a standard bow slot
an extra inventory slot
an underlying keyset
refueling torches
better monster memory
nicer targetting mode
object stacking
the recall window
the choice window
the mirror window
new high score code
special lighting effects
intelligent monsters
new monster flags
text formatting code
much cleaner store code
generic spell projections
scrolls of *identify*
maximize mode
preserve mode
new inscription code
new message recall code
new spell and prayer code
massive cleanup of effects code
new object allocation routines
powerful (but simple) on line help
robust savefile cheat preventers
new official cheating options
new blindness code
new hallucination code
optimized object description code
new keypress input routines
actual object discounts
fractional (assymptotic) speed
postponing updates/redraws
run-time price determination
better wizard commands
the automatic player
launchers of extra shots
elemental ignore flags
new ego-item types
new player ghost creation
no more sliding objects
no more sliding monsters
new object flags
new chest trap code
regularized the artifact code
regularized the ego-item code
new monster abilities
new monster spell attacks
some new store owners
run-time skill computation
player kills vs anscestor kills
better room illumination code
better group monster code
table access through pointers
more redefinable constants
slightly new screen layout
extreme code cleaning
extreme optimizations
=== A Posting from the Original Author ===
From: koeneke@ionet.net (Robert Alan Koeneke)
Newsgroups: rec.games.roguelike.angband,rec.games.roguelike.moria
Subject: Early history of Moria
Date: Wed, 21 Feb 1996 04:20:51 GMT
I had some email show up asking about the origin of Moria, and its
relation to Rogue. So I thought I would just post some text on the
early days of Moria.
First of all, yes, I really am the Robert Koeneke who wrote the first
Moria. I had a lot of mail accussing me of pulling their leg and
such. I just recently connected to Internet (yes, I work for a
company in the dark ages where Internet is concerned) and
was real surprised to find Moria in the news groups... Angband was an
even bigger surprise, since I have never seen it. I probably spoke to
its originator though... I have given permission to lots of people
through the years to enhance, modify, or whatever as long as they
freely distributed the results. I have always been a proponent of
sharing games, not selling them.
Anyway...
Around 1980 or 81 I was enrolled in engineering courses at the
University of Oklahoma. The engineering lab ran on a PDP 1170 under
an early version of UNIX. I was always good at computers, so it was
natural for me to get to know the system administrators. They invited
me one night to stay and play some games, an early startrek game, The
Colossal Cave Adventure (later just 'Adventure'), and late one night,
a new dungeon game called 'Rogue'.
So yes, I was exposed to Rogue before Moria was even a gleam in my
eye. In fact, Rogue was directly responsible for millions of hours of
play time wasted on Moria and its descendents...
Soon after playing Rogue (and man, was I HOOKED), I got a job in a
different department as a student assistant in computers. I worked on
one of the early VAX 11/780's running VMS, and no games were available
for it at that time. The engineering lab got a real geek of an
administrator who thought the only purpose of a computer was WORK!
Imagine... Soooo, no more games, and no more rogue!
This was intolerable! So I decided to write my own rogue game, Moria
Beta 1.0. I had three languages available on my VMS system. Fortran
IV, PASCAL V1.?, and BASIC. Since most of the game was string
manipulation, I wrote the first attempt at Moria in VMS BASIC, and it
looked a LOT like Rogue, at least what I could remember of it. Then I
began getting ideas of how to improve it, how it should work
differently, and I pretty much didn't touch it for about a year.
Around 1983, two things happened that caused Moria to be born in its
recognizable form. I was engaged to be married, and the only cure for
THAT is to work so hard you can't think about it; and I was enrolled
for fall to take an operating systems class in PASCAL.
So, I investigated the new version of VMS PASCAL and found out it had
a new feature. Variable length strings! Wow...
That summer I finished Moria 1.0 in VMS PASCAL. I learned more about
data structures, optimization, and just plain programming that summer
then in all of my years in school. I soon drew a crowd of devoted
Moria players... All at OU.
I asked Jimmey Todd, a good friend of mine, to write a better
character generator for the game, and so the skills and history were
born. Jimmey helped out on many of the functions in the game as well.
This would have been about Moria 2.0
In the following two years, I listened a lot to my players and kept
making enhancements to the game to fix problems, to challenge them,
and to keep them going. If anyone managed to win, I immediately found
out how, and 'enhanced' the game to make it harder. I once vowed it
was 'unbeatable', and a week later a friend of mine beat it! His
character, 'Iggy', was placed into the game as 'The Evil Iggy', and
immortalized... And of course, I went in and plugged up the trick he
used to win...
Around 1985 I started sending out source to other universities. Just
before a OU / Texas football clash, I was asked to send a copy to the
Univeristy of Texas... I couldn't resist... I modified it so that
the begger on the town level was 'An OU football fan' and they moved
at maximum rate. They also multiplied at maximum rate... So the
first step you took and woke one up, it crossed the floor increasing
to hundreds of them and pounded you into oblivion... I soon received
a call and provided instructions on how to 'de-enhance' the game!
Around 1986 - 87 I released Moria 4.7, my last official release. I
was working on a Moria 5.0 when I left OU to go to work for American
Airlines (and yes, I still work there). Moria 5.0 was a complete
rewrite, and contained many neat enhancements, features, you name it.
It had water, streams, lakes, pools, with water monsters. It had
'mysterious orbs' which could be carried like torches for light but
also gave off magical aura's (like protection from fire, or aggrivate
monster...). It had new weapons and treasures... I left it with the
student assistants at OU to be finished, but I guess it soon died on
the vine. As far as I know, that source was lost...
I gave permission to anyone who asked to work on the game. Several
people asked if they could convert it to 'C', and I said fine as long
as a complete credit history was maintained, and that it could NEVER
be sold, only given. So I guess one or more of them succeeded in
their efforts to rewrite it in 'C'.
I have since received thousands of letters from all over the world
from players telling about their exploits, and from administrators
cursing the day I was born... I received mail from behind the iron
curtain (while it was still standing) talking about the game on VAX's
(which supposedly couldn't be there due to export laws). I used to
have a map with pins for every letter I received, but I gave up on
that!
I am very happy to learn my creation keeps on going... I plan to
download it and Angband and play them... Maybe something has been
added that will surprise me! That would be nice... I never got to
play Moria and be surprised...
Robert Alan Koeneke
koeneke@ionet.net
=== Previous Versions (outdated) ===
VMS Moria Version 4.8
Version 0.1 : 03/25/83
Version 1.0 : 05/01/84
Version 2.0 : 07/10/84
Version 3.0 : 11/20/84
Version 4.0 : 01/20/85
Modules :
V1.0 Dungeon Generator - RAK
Character Generator - RAK & JWT
Moria Module - RAK
Miscellaneous - RAK & JWT
V2.0 Town Level & Misc - RAK
V3.0 Internal Help & Misc - RAK
V4.0 Source Release Version - RAK
Robert Alan Koeneke Jimmey Wayne Todd Jr.
Student/University of Oklahoma Student/University of Oklahoma
Umoria Version 5.2 (formerly UNIX Moria)
Version 4.83 : 5/14/87
Version 4.85 : 10/26/87
Version 4.87 : 5/27/88
Version 5.0 : 11/2/89
Version 5.2 : 5/9/90
James E. Wilson, U.C. Berkeley
wilson@ernie.Berkeley.EDU
...!ucbvax!ucbernie!wilson
Other contributors:
D. G. Kneller - MSDOS Moria port
Christopher J. Stuart - recall, options, inventory, and running code
Curtis McCauley - Macintosh Moria port
Stephen A. Jacobs - Atari ST Moria port
William Setzer - object naming code
David J. Grabiner - numerous bug reports, and consistency checking
Dan Bernstein - UNIX hangup signal fix, many bug fixes
and many others...
Copyright (c) 1989 James E. Wilson, Robert A. Keoneke
This software may be copied and distributed for educational, research, and
not for profit purposes provided that this copyright and statement are
included in all such copies.
Umoria Version 5.2, patch level 1
Angband Version 2.0 Alex Cutler, Andy Astrand, Sean Marsh, Geoff Hill,
Charles Teague.
Angband Version 2.4 : 5/09/93
Angband Version 2.5 : 12/05/93 Charles Swiger.
Angband Version 2.6 : 9/04/94
Angband Version 2.7 : 1/1/95 Ben Harrison